home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2001 May / SGI Freeware 2001 May - Disc 2.iso / dist / fw_libxml.idb / usr / freeware / include / gnome-xml / entities.h.z / entities.h
C/C++ Source or Header  |  2001-04-12  |  3KB  |  99 lines

  1. /*
  2.  * entities.h : interface for the XML entities handking
  3.  *
  4.  * See Copyright for the status of this software.
  5.  *
  6.  * Daniel.Veillard@w3.org
  7.  */
  8.  
  9. #ifndef __XML_ENTITIES_H__
  10. #define __XML_ENTITIES_H__
  11.  
  12. #include "tree.h"
  13.  
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17.  
  18. #define XML_INTERNAL_GENERAL_ENTITY        1
  19. #define XML_EXTERNAL_GENERAL_PARSED_ENTITY    2
  20. #define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY    3
  21. #define XML_INTERNAL_PARAMETER_ENTITY        4
  22. #define XML_EXTERNAL_PARAMETER_ENTITY        5
  23. #define XML_INTERNAL_PREDEFINED_ENTITY        6
  24.  
  25. /*
  26.  * An unit of storage for an entity, contains the string, the value
  27.  * and the linkind data needed for the linking in the hash table.
  28.  */
  29.  
  30. typedef struct _xmlEntity xmlEntity;
  31. typedef xmlEntity *xmlEntityPtr;
  32. struct _xmlEntity {
  33.     int type;            /* The entity type */
  34.     int len;            /* The lenght of the name */
  35.     const xmlChar  *name;    /* Name of the entity */
  36.     const xmlChar  *ExternalID;    /* External identifier for PUBLIC Entity */
  37.     const xmlChar  *SystemID;    /* URI for a SYSTEM or PUBLIC Entity */
  38.     xmlChar *content;        /* The entity content or ndata if unparsed */
  39.     int length;            /* the content length */
  40.     xmlChar *orig;        /* The entity cont without ref substitution */
  41. };
  42.  
  43. /*
  44.  * ALl entities are stored in a table there is one table per DTD
  45.  * and one extra per document.
  46.  */
  47.  
  48. #define XML_MIN_ENTITIES_TABLE    32
  49.  
  50. typedef struct _xmlEntitiesTable xmlEntitiesTable;
  51. typedef xmlEntitiesTable *xmlEntitiesTablePtr;
  52. struct _xmlEntitiesTable {
  53.     int nb_entities;        /* number of elements stored */
  54.     int max_entities;        /* maximum number of elements */
  55.     xmlEntityPtr table;            /* the table of entities */
  56. };
  57.  
  58.  
  59. /*
  60.  * External functions :
  61.  */
  62.  
  63. void            xmlAddDocEntity        (xmlDocPtr doc,
  64.                          const xmlChar *name,
  65.                          int type,
  66.                          const xmlChar *ExternalID,
  67.                          const xmlChar *SystemID,
  68.                          const xmlChar *content);
  69. void            xmlAddDtdEntity        (xmlDocPtr doc,
  70.                          const xmlChar *name,
  71.                          int type,
  72.                          const xmlChar *ExternalID,
  73.                          const xmlChar *SystemID,
  74.                          const xmlChar *content);
  75. xmlEntityPtr        xmlGetPredefinedEntity    (const xmlChar *name);
  76. xmlEntityPtr        xmlGetDocEntity        (xmlDocPtr doc,
  77.                          const xmlChar *name);
  78. xmlEntityPtr        xmlGetDtdEntity        (xmlDocPtr doc,
  79.                          const xmlChar *name);
  80. xmlEntityPtr        xmlGetParameterEntity    (xmlDocPtr doc,
  81.                          const xmlChar *name);
  82. const xmlChar *        xmlEncodeEntities    (xmlDocPtr doc,
  83.                          const xmlChar *input);
  84. xmlChar *        xmlEncodeEntitiesReentrant(xmlDocPtr doc,
  85.                          const xmlChar *input);
  86. xmlEntitiesTablePtr    xmlCreateEntitiesTable    (void);
  87. xmlEntitiesTablePtr    xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
  88. void            xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
  89. void            xmlDumpEntitiesTable    (xmlBufferPtr buf,
  90.                          xmlEntitiesTablePtr table);
  91. xmlEntitiesTablePtr    xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
  92. void            xmlCleanupPredefinedEntities(void);
  93.  
  94. #ifdef __cplusplus
  95. }
  96. #endif
  97.  
  98. # endif /* __XML_ENTITIES_H__ */
  99.